<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DM-CtrlH7-BF-DevProgram: C:/Users/ASUS/Desktop/dm-ctrlH7-balance-9025test/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectlogo"><img alt="Logo" src="50x5.png"/></td>
  <td id="projectalign">
   <div id="projectname">DM-CtrlH7-BF-DevProgram<span id="projectnumber">&#160;beta 0.1</span>
   </div>
   <div id="projectbrief">C.ONE Studio Damiao Development Board Framework</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search',true);
  $(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(function(){initNavTree('stm32h7xx__hal__def_8h.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>

<div class="header">
  <div class="headertitle"><div class="title">stm32h7xx_hal_def.h File Reference</div></div>
</div><!--header-->
<div class="contents">

<p>This file contains HAL common defines, enumeration, macros and structures definitions.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="stm32h7xx_8h_source.html">stm32h7xx.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="stm32__hal__legacy_8h_source.html">Legacy/stm32_hal_legacy.h</a>&quot;</code><br />
<code>#include &lt;stddef.h&gt;</code><br />
<code>#include &lt;math.h&gt;</code><br />
</div>
<p><a href="stm32h7xx__hal__def_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-define-members" class="groupheader"><a id="define-members" name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:aad28bc64749c50dcedd6bf819fdc6974" id="r_aad28bc64749c50dcedd6bf819fdc6974"><td class="memItemLeft" align="right" valign="top"><a id="aad28bc64749c50dcedd6bf819fdc6974" name="aad28bc64749c50dcedd6bf819fdc6974"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>HAL_MAX_DELAY</b>&#160;&#160;&#160;0xFFFFFFFFU</td></tr>
<tr class="memitem:a5b44dfd2a26f85f7b628b0945daff2c3" id="r_a5b44dfd2a26f85f7b628b0945daff2c3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a5b44dfd2a26f85f7b628b0945daff2c3">HAL_IS_BIT_SET</a>(REG,  BIT)</td></tr>
<tr class="memitem:a82637a84fbdca0e2a25496089b549924" id="r_a82637a84fbdca0e2a25496089b549924"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a82637a84fbdca0e2a25496089b549924">HAL_IS_BIT_CLR</a>(REG,  BIT)</td></tr>
<tr class="memitem:af5b3b3d0eff8c4cb59d4d3909c247311" id="r_af5b3b3d0eff8c4cb59d4d3909c247311"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af5b3b3d0eff8c4cb59d4d3909c247311">__HAL_LINKDMA</a>(__HANDLE__,  __PPP_DMA_FIELD__,  __DMA_HANDLE__)</td></tr>
<tr class="memitem:a86d500a34c624c2cae56bc25a31b12f3" id="r_a86d500a34c624c2cae56bc25a31b12f3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a>(x)</td></tr>
<tr class="memitem:a5850085e1bb7a96a417756f235b16aea" id="r_a5850085e1bb7a96a417756f235b16aea"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a5850085e1bb7a96a417756f235b16aea">__HAL_RESET_HANDLE_STATE</a>(__HANDLE__)</td></tr>
<tr class="memdesc:a5850085e1bb7a96a417756f235b16aea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reset the Handle's State field.  <br /></td></tr>
<tr class="memitem:ad3d96e1b9022ba76b69eeda91027b36c" id="r_ad3d96e1b9022ba76b69eeda91027b36c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad3d96e1b9022ba76b69eeda91027b36c">__HAL_LOCK</a>(__HANDLE__)</td></tr>
<tr class="memitem:a7c2c23627aed2bb71d8c1ad071cda004" id="r_a7c2c23627aed2bb71d8c1ad071cda004"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7c2c23627aed2bb71d8c1ad071cda004">__HAL_UNLOCK</a>(__HANDLE__)</td></tr>
<tr class="memitem:aaa12b03c58e2eb296bd7aa915ee540f3" id="r_aaa12b03c58e2eb296bd7aa915ee540f3"><td class="memItemLeft" align="right" valign="top"><a id="aaa12b03c58e2eb296bd7aa915ee540f3" name="aaa12b03c58e2eb296bd7aa915ee540f3"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>__ALIGN_END</b></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-enum-members" class="groupheader"><a id="enum-members" name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:a63c0679d1cb8b8c684fbb0632743478f" id="r_a63c0679d1cb8b8c684fbb0632743478f"><td class="memItemLeft" align="right" valign="top"><a id="a63c0679d1cb8b8c684fbb0632743478f" name="a63c0679d1cb8b8c684fbb0632743478f"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a63c0679d1cb8b8c684fbb0632743478f">HAL_StatusTypeDef</a> { <b>HAL_OK</b> = 0x00
, <b>HAL_ERROR</b> = 0x01
, <b>HAL_BUSY</b> = 0x02
, <b>HAL_TIMEOUT</b> = 0x03
 }</td></tr>
<tr class="memdesc:a63c0679d1cb8b8c684fbb0632743478f"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL Status structures definition. <br /></td></tr>
<tr class="memitem:ab367482e943333a1299294eadaad284b" id="r_ab367482e943333a1299294eadaad284b"><td class="memItemLeft" align="right" valign="top"><a id="ab367482e943333a1299294eadaad284b" name="ab367482e943333a1299294eadaad284b"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab367482e943333a1299294eadaad284b">HAL_LockTypeDef</a> { <b>HAL_UNLOCKED</b> = 0x00
, <b>HAL_LOCKED</b> = 0x01
 }</td></tr>
<tr class="memdesc:ab367482e943333a1299294eadaad284b"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL Lock structures definition. <br /></td></tr>
</table>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
<div class="textblock"><p>This file contains HAL common defines, enumeration, macros and structures definitions. </p>
<dl class="section author"><dt>Author</dt><dd>MCD Application Team </dd></dl>
<dl class="section attention"><dt>Attention</dt><dd></dd></dl>
<p>Copyright (c) 2017 STMicroelectronics. All rights reserved.</p>
<p>This software is licensed under terms that can be found in the LICENSE file in the root directory of this software component. If no LICENSE file comes with this software, it is provided AS-IS. </p>
</div><a name="doc-define-members" id="doc-define-members"></a><h2 id="header-doc-define-members" class="groupheader">Macro Definition Documentation</h2>
<a id="af5b3b3d0eff8c4cb59d4d3909c247311" name="af5b3b3d0eff8c4cb59d4d3909c247311"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af5b3b3d0eff8c4cb59d4d3909c247311">&#9670;&#160;</a></span>__HAL_LINKDMA</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define __HAL_LINKDMA</td>
          <td>(</td>
          <td class="paramtype"></td>          <td class="paramname"><span class="paramname"><em>__HANDLE__</em></span>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"></td>          <td class="paramname"><span class="paramname"><em>__PPP_DMA_FIELD__</em></span>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"></td>          <td class="paramname"><span class="paramname"><em>__DMA_HANDLE__</em></span>&#160;)</td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">                        <span class="keywordflow">do</span>{                                                      \</div>
<div class="line">                              (__HANDLE__)-&gt;__PPP_DMA_FIELD__ = &amp;(__DMA_HANDLE__); \</div>
<div class="line">                              (__DMA_HANDLE__).Parent = (__HANDLE__);             \</div>
<div class="line">                          } <span class="keywordflow">while</span>(0)</div>
</div><!-- fragment -->
</div>
</div>
<a id="ad3d96e1b9022ba76b69eeda91027b36c" name="ad3d96e1b9022ba76b69eeda91027b36c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad3d96e1b9022ba76b69eeda91027b36c">&#9670;&#160;</a></span>__HAL_LOCK</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define __HAL_LOCK</td>
          <td>(</td>
          <td class="paramtype"></td>          <td class="paramname"><span class="paramname"><em>__HANDLE__</em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">                                <span class="keywordflow">do</span>{                                        \</div>
<div class="line">                                    if((__HANDLE__)-&gt;Lock == HAL_LOCKED)   \</div>
<div class="line">                                    {                                      \</div>
<div class="line">                                       <span class="keywordflow">return</span> HAL_BUSY;                    \</div>
<div class="line">                                    }                                      \</div>
<div class="line">                                    <span class="keywordflow">else</span>                                   \</div>
<div class="line">                                    {                                      \</div>
<div class="line">                                       (__HANDLE__)-&gt;Lock = HAL_LOCKED;    \</div>
<div class="line">                                    }                                      \</div>
<div class="line">                                  }<span class="keywordflow">while</span> (0)</div>
</div><!-- fragment -->
</div>
</div>
<a id="a5850085e1bb7a96a417756f235b16aea" name="a5850085e1bb7a96a417756f235b16aea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5850085e1bb7a96a417756f235b16aea">&#9670;&#160;</a></span>__HAL_RESET_HANDLE_STATE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define __HAL_RESET_HANDLE_STATE</td>
          <td>(</td>
          <td class="paramtype"></td>          <td class="paramname"><span class="paramname"><em>__HANDLE__</em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">((__HANDLE__)-&gt;State = 0)</div>
</div><!-- fragment -->
<p>Reset the Handle's State field. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__HANDLE__</td><td>specifies the Peripheral Handle. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>This macro can be used for the following purpose:<ul>
<li>When the Handle is declared as local variable; before passing it as parameter to HAL_PPP_Init() for the first time, it is mandatory to use this macro to set to 0 the Handle's "State" field. Otherwise, "State" field may have any random value and the first time the function HAL_PPP_Init() is called, the low level hardware initialization will be missed (i.e. HAL_PPP_MspInit() will not be executed).</li>
<li>When there is a need to reconfigure the low level hardware: instead of calling HAL_PPP_DeInit() then HAL_PPP_Init(), user can make a call to this macro then HAL_PPP_Init(). In this later function, when the Handle's "State" field is set to 0, it will execute the function HAL_PPP_MspInit() which will reconfigure the low level hardware. </li>
</ul>
</dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">None</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a7c2c23627aed2bb71d8c1ad071cda004" name="a7c2c23627aed2bb71d8c1ad071cda004"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7c2c23627aed2bb71d8c1ad071cda004">&#9670;&#160;</a></span>__HAL_UNLOCK</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define __HAL_UNLOCK</td>
          <td>(</td>
          <td class="paramtype"></td>          <td class="paramname"><span class="paramname"><em>__HANDLE__</em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">                                  <span class="keywordflow">do</span>{                                       \</div>
<div class="line">                                      (__HANDLE__)-&gt;Lock = HAL_UNLOCKED;    \</div>
<div class="line">                                    }<span class="keywordflow">while</span> (0)</div>
</div><!-- fragment -->
</div>
</div>
<a id="a82637a84fbdca0e2a25496089b549924" name="a82637a84fbdca0e2a25496089b549924"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a82637a84fbdca0e2a25496089b549924">&#9670;&#160;</a></span>HAL_IS_BIT_CLR</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HAL_IS_BIT_CLR</td>
          <td>(</td>
          <td class="paramtype"></td>          <td class="paramname"><span class="paramname"><em>REG</em></span>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"></td>          <td class="paramname"><span class="paramname"><em>BIT</em></span>&#160;)</td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">(((REG) &amp; (BIT)) == 0U)</div>
</div><!-- fragment -->
</div>
</div>
<a id="a5b44dfd2a26f85f7b628b0945daff2c3" name="a5b44dfd2a26f85f7b628b0945daff2c3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5b44dfd2a26f85f7b628b0945daff2c3">&#9670;&#160;</a></span>HAL_IS_BIT_SET</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HAL_IS_BIT_SET</td>
          <td>(</td>
          <td class="paramtype"></td>          <td class="paramname"><span class="paramname"><em>REG</em></span>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"></td>          <td class="paramname"><span class="paramname"><em>BIT</em></span>&#160;)</td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">(((REG) &amp; (BIT)) == (BIT))</div>
</div><!-- fragment -->
</div>
</div>
<a id="a86d500a34c624c2cae56bc25a31b12f3" name="a86d500a34c624c2cae56bc25a31b12f3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a86d500a34c624c2cae56bc25a31b12f3">&#9670;&#160;</a></span>UNUSED</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define UNUSED</td>
          <td>(</td>
          <td class="paramtype"></td>          <td class="paramname"><span class="paramname"><em>x</em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">((void)(x))    <span class="comment">/* To avoid gcc/g++ warnings */</span></div>
</div><!-- fragment -->
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a href="dir_60925fc218da8ca7908795bf5f624060.html">Drivers</a></li><li class="navelem"><a href="dir_7baec2ddb99168f99d1052c1aec46b20.html">STM32H7xx_HAL_Driver</a></li><li class="navelem"><a href="dir_4f22a8fa6199c96df71a89cbd7613f35.html">Inc</a></li><li class="navelem"><a href="stm32h7xx__hal__def_8h.html">stm32h7xx_hal_def.h</a></li>
    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
  </ul>
</div>
</body>
</html>
